Disable pagetable pinning for shadow-mode-refcount guests.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 23 Feb 2006 13:50:00 +0000 (14:50 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Thu, 23 Feb 2006 13:50:00 +0000 (14:50 +0100)
Signed-off-by: Steven Smith <sos22@cam.ac.uk>
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/arch/x86/mm.c

index 65aed8c0d1d06bc29702133e334860e4e7da53ad..f2a5f2b2573eef24fabc6262dedacc49b81dc445 100644 (file)
@@ -1776,7 +1776,7 @@ int do_mmuext_op(
 
         pin_page:
             if ( shadow_mode_refcounts(FOREIGNDOM) )
-                type = PGT_writable_page;
+                break;
 
             okay = get_page_and_type_from_pagenr(mfn, type, FOREIGNDOM);
             if ( unlikely(!okay) )
@@ -1811,6 +1811,9 @@ int do_mmuext_op(
             goto pin_page;
 
         case MMUEXT_UNPIN_TABLE:
+            if ( shadow_mode_refcounts(d) )
+                break;
+
             if ( unlikely(!(okay = get_page_from_pagenr(mfn, d))) )
             {
                 MEM_LOG("Mfn %lx bad domain (dom=%p)",